pasar de int a byte[] y al reves
Buenas
Por alguna extraña razon me han pedido que haga una funcion que dado un Int, me lo guarde en un array de bytes, y al reves, que dado 4 bytes, me devuelva el entero correspondiente.
No tengo ni idea de por donde empezar. ¿Alguna sugerencia?
Por alguna extraña razon me han pedido que haga una funcion que dado un Int, me lo guarde en un array de bytes, y al reves, que dado 4 bytes, me devuelva el entero correspondiente.
No tengo ni idea de por donde empezar. ¿Alguna sugerencia?
Para pasar de un int a un byte[], puedes hacerlo asi
int n = 25;
byte b[] = new byte[4];
b[0] = (byte)(n & 0x000000ff);
b[1] = (byte)((n & 0x0000ff00) >> 8);
b[2] = (byte)((n & 0x00ff0000) >> 16);
b[3] = (byte)((n & 0xff000000) >> 24);
Para pasar de byte[] a int, te dejo que lo pienses, es parecido al caso anterior pero al reves
int n = 25;
byte b[] = new byte[4];
b[0] = (byte)(n & 0x000000ff);
b[1] = (byte)((n & 0x0000ff00) >> 8);
b[2] = (byte)((n & 0x00ff0000) >> 16);
b[3] = (byte)((n & 0xff000000) >> 24);
Para pasar de byte[] a int, te dejo que lo pienses, es parecido al caso anterior pero al reves
Mejor asÃ:
b[3] = (byte)(n & 0x000000ff);
b[2] = (byte)((n & 0x0000ff00) >> 8);
b[1] = (byte)((n & 0x00ff0000) >> 16);
b[0] = (byte)((n & 0xff000000) >> 24);
que si no luego da problemas la conversión hacia atrás
b[3] = (byte)(n & 0x000000ff);
b[2] = (byte)((n & 0x0000ff00) >> 8);
b[1] = (byte)((n & 0x00ff0000) >> 16);
b[0] = (byte)((n & 0xff000000) >> 24);
que si no luego da problemas la conversión hacia atrás
